import Vue from "vue";
import Vuex from "vuex";
import goods_create from './modules/goods_create'
Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    name: '根数据-name'
  },
  modules: {
    goods_create
  }
});


/*  根模块 与 子模块 基本的取值方法

  预设 根store 与 goods_create 中的store中都有一个叫name的数据
  获取name的几种方式
  当前mapState 为根store下的数据
  import {mapState, createNamespacedHelpers} from 'vuex'
  针对vuex模块的包装函数 返回传入模块名字下的数据
  let {mapState: goodsCreateMapState} = createNamespacedHelpers('goods_create')

  computed: {
    console.log(this.$store.state.name) 根stroe下的name
    console.log(this.$store.state.goods_create.name) 模块下的name
    ...mapState(['name']), // 根store下的name
    ...mapState('goods_create', ['name']), // 模块下的name
    ...mapState('goods_create', {
      goods_name: state => state.name // 通过对象 函数的方式 可以对指定的数据进行命名 name => goods_name
    }),
    ...goodsCreateMapState(['name']) // 模块下的name 当计算属性中存在相同的属性名 后来者居上
  },
  methods: {
    change(){
      // 执行模块goods_create 下的mutations 中的 changeUser方法 模块以/分割
      this.$commit('goods_create/changeUser', 'xxx')
    }
  }

  如果增加子模块 没有增加namespaced属性 默认子模块中的各个属性与方法 是挂载到根模块下的 这种直接可以在根模块中获取子模块中的数据的

  如果开启了模块 就要使用模块去取属性
*/